/* Copyright (c) [2025] [zhi1208@126.com]
 * SPDX-License-Identifier: MIT
 */

#pragma once

/*********************
 *      INCLUDES
 *********************/
#include "hmi_pg_def.h"

/*********************
 *      DEFINES
 *********************/

/**********************
 *      TYPEDEFS
 **********************/
typedef void (*hmi_gesture_cb_t)();
typedef void (*hmi_stack_ops_cb_t)();

/**********************
 * GLOBAL PROTOTYPES
 **********************/
void hmi_pg_navigation_init();
void hmi_pg_push(hmi_pg_t *pg);
void hmi_pg_pop();
void hmi_back_home();
void hmi_rebuil_all_pg();
hmi_pg_t *hmi_get_cur_page();
void hmi_set_swipe_left_right_cb(hmi_gesture_cb_t cb);
void hmi_set_swipe_up_cb(hmi_gesture_cb_t cb);
void hmi_add_push_start_cb(hmi_stack_ops_cb_t cb);
void hmi_add_push_cplt_cb(hmi_stack_ops_cb_t cb);
void hmi_add_pop_cplt_cb(hmi_stack_ops_cb_t cb);
void hmi_add_back_home_cplt_cb(hmi_stack_ops_cb_t cb);
void hmi_add_rebuild_all_pg_cplt_cb(hmi_stack_ops_cb_t cb);

/**********************
 *      MACROS
 **********************/
